今天預計要講 Pure Functions
FP 中有一個不能不提的概念,江湖上人稱純函數,但他到底有多純呢?至今仍然是個謎
但他能使你更容易去測試你的程式碼
如果一個 function 滿足兩個條件,則該 functtion 是 Pure Functions:
1.當給定該 function 相同的 input(Parameter) 時,該 function 始終會產生相同的 output(return)
2.該 function 沒有其他 side effects
純函式會更容易測試這句話是什麼意思?各位可以想想,由於 Pure Function 具有同輸入同輸出的特性,這樣他擁有高可預測性,在實作上盡量讓每個函數都是 Pure Function,這樣開發上只需理解函數作用在做什麼就好,這樣能大幅提升重構的速度,如果該函數會牽扯到其他參數,那且不是牽一髮動全身,改一個地方,爆一堆東西,光想到你就懶得重夠了。
今天先提供簡單範例:
例如:
func PlayPS4WithSomeGame(_ gameTime: Hours, form games:[Game]) -> [Game] {
return games.
filter { $0.gameTime < gameTime }
}